package com.pdd.dto;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * @创建时间: 2018/8/14 - 14:44
 * @编写人员: 丷教皇
 * @文件描述: 数据传输对象，API中的所有Controller控制器，统一返回这个格式的JSON数据，<T> 数据类型，默认Object
 *
 * 全局Code：
 *          1000 操作成功
 *          2000 操作失败
 */
@Getter
@Setter
public class DTO<T> {

    private int code;         //状态码
    private String msg;       //信息
    private T data;           //数据

    public DTO() {
    }
    public DTO(T data){
        this(1000,"操作完成",data);
    }
    public DTO(int code, String msg) {
        this(code,msg,null);
    }
    public DTO(int code, T data) {
        this(code,"操作完成",null);
    }
    public DTO(int code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    /**
     * 返回那个表示操作成功的DTO
     * @return DTO 对象
     */
    public static DTO success(){
        DTO dto = new DTO();
        dto.code = 1000;
        dto.msg = "操作成功";
        return dto;
    }

    /**
     * 返回那个表示操作失败的DTO
     * @return DTO 对象
     */
    public static DTO error(){
        DTO dto = new DTO();
        dto.code = 2000;
        dto.msg = "操作失败";
        return dto;
    }

}
